#!/usr/bin/env python
# -*- coding:utf8 -*-
# uncompyle6 version 2.15.1
# Python bytecode 2.7 (62211)
# Decompiled from: Python 2.7.10 (default, Jul  1 2017, 13:36:56) 
# [GCC 4.4.6 20110731 (Red Hat 4.4.6-4)]
# Embedded file name: ./esb/common/bkerrors.py
# Compiled at: 2017-11-16 15:44:28
"""
Copyright © 2012-2017 Tencent BlueKing. All Rights Reserved. 蓝鲸智云 版权所有

蓝鲸统一错误码处理
"""
bk_error_codes_conf = {'REDIS_CONNECTION_ERROR': {'code': '1306001',
                              'reason': u'redis 连接失败',
                              'solution': u'检查redis配置是否正确，服务是否正常'
                              },
   'COMPONENT_REGISTER_ERROR': {'code': '1306101',
                                'reason': u'组件代码逻辑错误，无法加载',
                                'solution': u'根据异常信息，检查代码逻辑，排除异常'
                                },
   'COMPONENT_COMP_CONF_ERROR': {'code': '1306102',
                                 'reason': u'组件通道中的组件配置，不是一个有效的JSON字符串',
                                 'solution': u'检查组件配置，JSON 字符串需要是一个 dict，或者可以转化为 dict 的列表'
                                 },
   'REQUEST_THIRD_PARTY_ERROR': {'code': '1306201',
                                 'reason': u'请求第三方系统接口出现异常',
                                 'solution': u'检查第三方系统接口服务是否正常'
                                 },
   'THIRD_PARTY_RESP_ERROR': {'code': '1306202',
                              'reason': u'第三方系统接口返回数据不是一个有效的 JSON 字符串',
                              'solution': u'检查第三方系统接口服务是否正常'
                              },
   'REQUEST_SSL_ERROR': {'code': '1306203',
                         'reason': u'请求第三方系统接口出现SSLError',
                         'solution': u'检查组件配置中 SSL_ROOT_DIR 对应的文件夹是否存在，及其下的证书是否过期'
                         },
   'REQUEST_GSE_ERROR': {'code': '1306204',
                         'reason': u'访问系统 GSE 的接口出现错误',
                         'solution': u'检查 GSE 系统接口服务是否正常'
                         },
   'REQUEST_SMTP_ERROR': {'code': '1306205',
                          'reason': u'访问 SMTP 邮箱服务出现错误',
                          'solution': u'检查发送邮件组件 SMTP 配置是否正确，及 SMTP 邮箱服务是否正常'
                          }
   }

class ErrorCode(object):
    """
    Error Code class
    """

    def __init__(self, code_name, code, reason, solution):
        self.code_name = code_name
        self.code = code
        self.reason = reason
        self.solution = solution


class BkErrorCodes(object):

    def __init__(self):
        self._error_codes_dict = dict([ (code_name, ErrorCode(code_name, **error_code)) for code_name, error_code in bk_error_codes_conf.iteritems()
                                      ])

    def __getattr__(self, code_name):
        return self._error_codes_dict[code_name]


bk_error_codes = BkErrorCodes()
